平常使用 ChatGPT 或其他類似的對話 AI 都可直接使用,大不了額度沒了會降為效果比較差的模型,不過要進行程式開發就需要先申請 API key,除非使用本地的 LLM。
原本凱文大叔測試 AI 都以本地 LLM 或是一些免費的服務為主,不過 2024/7/18 OpenAI 發布 GPT-4o mini 模型後就完全改觀了,價格竟然比 GPT-3.5 Turbo 還便宜 60%,花 5 美金就可以用很久(Open AI 最低額度),平時想省點費用還可以改用尚未收費的 Groq,這也會讓原本猶豫不決的開發人員一起加入 AI 的賽道,接下來就跟大家說這把鑰匙在哪創建
原本 Open AI 個人的 API key 是在 Profile 下創建,不過前陣子已改為在 Project 下建立
首先進入 Open AI 後臺管理介面
登入後點選 Dashboard→API Keys→Create new secret key 就能建立 API key
名稱可以隨便取,預設會有一個 Default project,若有多個專案也可以建立好 Project 再來建立 API key,有特別權限需求可以在 Permissions 設定,記得產生 API key 後要馬上複製,不然視窗關閉後就無法取得完整的 API key ,只能重新建立一組
API key 記得保存好也別洩漏出去,不然額度怎麼被用完都不曉得
Groq 並不是製作 AI 模型的公司,它主要在提供雲端算力,而且上面可選擇一些不錯的開源模型,就連最近剛出的Llama3.1 也能使用,很適合自己電腦跑不動的開發人員,目前都還未開始收費,很適合拿來練習及開發
建立 key 的方式也非常簡單,在主頁點選 Start Building,即可進入後臺
接著點選 API Keys→Create API Key 輸入 Key name 就能產生 API key
與 Open AI 一樣沒複製就查不到了
有了入門鑰匙就能開始創建 Spring 專案,凱文大叔使用的 IDE 是 Spring 官方提供的 Spring Tools 4 for Eclipse,免費又好用,許多功能都直接整合進 IDE
先點選 File → New → Project,接著選擇 Spring Starter Project
專案相關名稱填寫完畢就可以勾選需要的依賴,目前 Java Version 只能選到 17 以後的版本,Spring Boot Version 也只能選擇 3.2.8 以後,若要使用以前的版本就只能建立 Maven 專案自行撰寫 pom.xml 了
凱文大叔勾選的依賴有
專案建立完成後先執行看看
竟然直接報錯,看一下錯誤的 log
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'openAiChatModel' defined in class path resource [org/springframework/ai/autoconfigure/openai/OpenAiAutoConfiguration.class]: Failed to instantiate [org.springframework.ai.openai.OpenAiChatModel]: Factory method 'openAiChatModel' threw exception with message: OpenAI API key must be set
原來是 Spring Boot 的自動配置找不到 API key,趕快把剛剛創建的 key 設定在 application.yml 中,凱文大叔習慣有結構性的 yml 設定,直接把 src/main/resources 下的 application.properties 附檔名改掉即可,接著按照下面的格式把 API key 填上
spring:
ai:
openai:
api-key: {輸入剛剛創建的 API key}
chat:
options:
model: gpt-4o-mini #記得把模型改為 gpt-4o-mini 才能享受便宜快速的模型
再執行一次程式,這次順利啟動沒任何錯誤,表示自動配置沒問題,Spring 容器會自動幫我們建立 openAiChatModel 的 Bean
Open AI 若還沒儲值也能先創建 API key,程式到這都沒問題,不過接下來跟 AI 對話若沒額度就會失敗了,想先體驗 AI 的朋友也可以改用 groq,設定如下
spring:
ai:
openai:
api-key: {輸入 groq 創建的 API key}
base-url: https://api.groq.com/openai
#groq與open ai相容,其他設定都一樣只需增加 base-url 即可
chat:
options:
model: llama-3.1-70b-versatile #這裡要輸入 groq 提供的模型
總結一下今天學到了甚麼?
題外話沉浸式翻譯可以自訂相容於 OpenAI 的 API,我們可以把 groq 的 API 設上去就能免費使用 AI 翻譯囉
雖然程式沒甚麼內容,還是放在 Github 給大家參考如何設定
https://github.com/kevintsai1202/SpringBoot-AI-Day2.git
凱文大叔使用 Java 開發程式超過 20 年,對於 Java 生態非常熟悉,曾使用反射機制開發 ETL 框架,對 Spring 背後的原理非常清楚,目前以 Spring Boot 作為後端開發框架,前端使用 React 搭配 Ant Design
下班之餘在 Amazing Talker 擔任程式語言講師,並獲得學員的一致好評
最近剛成立一個粉絲專頁-凱文大叔教你寫程式 歡迎大家多追蹤,我會不定期分享實用的知識以及程式開發技巧
想討論 Spring 的 Java 開發人員可以加入 FB 討論區 Spring Boot Developer Taiwan
我是凱文大叔,歡迎一起加入學習程式的行列